package com.ktgj.customer.api.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ktgj.common.core.annotation.Excel;
import com.ktgj.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 会员基本信息对象 customer
 * 
 * @author ruoyi
 * @date 2021-07-30
 */
public class Customer extends BaseEntity
{
    private static final long serialVersionUID = 1L;


    /** 客户基本信息ID */
    private Long customerId;

    /** 登录设备 未设置=0;web=10;wap=20;ios=30;Android=40 */
    @Excel(name = "登录设备 未设置=0;web=10;wap=20;ios=30;Android=40")
    private Long sourceway;

    /** 预留款使用密码
             */
    @Excel(name = "预留款使用密码")
    private String depositUsePwd;

    /** 预留款免密金额 */
    @Excel(name = "预留款免密金额")
    private Long depositSkipPwdAmount;

    /** 微信号
             */
    @Excel(name = "微信号")
    private String wechatId;

    /** 设备号
             */
    @Excel(name = "设备号")
    private String registrationid;

    /** 会员头像
             */
    @Excel(name = "会员头像")
    private String avatar;

    /** 网络会员密码MD5 登录密码
             */
    @Excel(name = "网络会员密码MD5 登录密码")
    private String custLoginPswmd5;

    /** 客户常用名
             */
    @Excel(name = "客户常用名")
    private String customerName;

    /** 性别 1女 2男
             */
    @Excel(name = "性别 1女 2男")
    private String customerSex;

    /** 阳历生日日期
             */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "阳历生日日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthday;

    /** 人会时间
             */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "人会时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date isMemberTime;

    /** 录入员
             */
    @Excel(name = "录入员")
    private Long employeeIdInput;

    /** 联系人电话1 */
    @Excel(name = "联系人电话1")
    private String contractPhoneOne;

    /** 联系人电话2 */
    @Excel(name = "联系人电话2")
    private String contractPhoneTow;

    /** 联系人电子邮箱 */
    @Excel(name = "联系人电子邮箱")
    private String contractEmail;

    /** 联系方式
             */
    @Excel(name = "联系方式")
    private String custContactmeans;

    /** 联系方式说明
             */
    @Excel(name = "联系方式说明")
    private String custContactmeansMemo;

    /** 证件类型ID：
            无证件
            其他证件
            身份证
            军人证
            护照
            港澳居民来往内地通行证
            台湾居民来往大陆通行证
            港澳台居民居住证
            外国人永久居留身份证
            港澳通行证
            户口本
            出生证明
            台湾通行证
             */
    @Excel(name = "证件类型")
    private String idType;

    /** 证件号码
            证件号码
             */
    @Excel(name = "证件号码")
    private String custCertificateNo;

    /** 证件有效期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "证件有效期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date invalidDate;

    /** openId */
    @Excel(name = "openId")
    private String openId;

    /** token */
    @Excel(name = "token")
    private String token;

    @Excel(name = "trainAccount")
    private String trainAccount;

    @Excel(name = "trainPassword")
    private String trainPassword;


    public String getToken() {
        return token;
    }

    public void setToken(String token) {
        this.token = token;
    }

    public void setCustomerId(Long customerId)
    {
        this.customerId = customerId;
    }

    public Long getCustomerId() 
    {
        return customerId;
    }
    public void setSourceway(Long sourceway) 
    {
        this.sourceway = sourceway;
    }

    public Long getSourceway() 
    {
        return sourceway;
    }
    public void setDepositUsePwd(String depositUsePwd) 
    {
        this.depositUsePwd = depositUsePwd;
    }

    public String getDepositUsePwd() 
    {
        return depositUsePwd;
    }
    public void setDepositSkipPwdAmount(Long depositSkipPwdAmount) 
    {
        this.depositSkipPwdAmount = depositSkipPwdAmount;
    }

    public Long getDepositSkipPwdAmount() 
    {
        return depositSkipPwdAmount;
    }
    public void setWechatId(String wechatId) 
    {
        this.wechatId = wechatId;
    }

    public String getWechatId() 
    {
        return wechatId;
    }
    public void setRegistrationid(String registrationid) 
    {
        this.registrationid = registrationid;
    }

    public String getRegistrationid() 
    {
        return registrationid;
    }
    public void setAvatar(String avatar) 
    {
        this.avatar = avatar;
    }

    public String getAvatar() 
    {
        return avatar;
    }
    public void setCustLoginPswmd5(String custLoginPswmd5) 
    {
        this.custLoginPswmd5 = custLoginPswmd5;
    }

    public String getCustLoginPswmd5() 
    {
        return custLoginPswmd5;
    }
    public void setCustomerName(String customerName) 
    {
        this.customerName = customerName;
    }

    public String getCustomerName() 
    {
        return customerName;
    }
    public void setCustomerSex(String customerSex)
    {
        this.customerSex = customerSex;
    }

    public String getCustomerSex()
    {
        return customerSex;
    }
    public void setBirthday(Date birthday) 
    {
        this.birthday = birthday;
    }

    public Date getBirthday() 
    {
        return birthday;
    }
    public void setIsMemberTime(Date isMemberTime) 
    {
        this.isMemberTime = isMemberTime;
    }

    public Date getIsMemberTime() 
    {
        return isMemberTime;
    }
    public void setEmployeeIdInput(Long employeeIdInput) 
    {
        this.employeeIdInput = employeeIdInput;
    }

    public Long getEmployeeIdInput() 
    {
        return employeeIdInput;
    }
    public void setContractPhoneOne(String contractPhoneOne) 
    {
        this.contractPhoneOne = contractPhoneOne;
    }

    public String getContractPhoneOne() 
    {
        return contractPhoneOne;
    }
    public void setContractPhoneTow(String contractPhoneTow) 
    {
        this.contractPhoneTow = contractPhoneTow;
    }

    public String getContractPhoneTow() 
    {
        return contractPhoneTow;
    }
    public void setContractEmail(String contractEmail) 
    {
        this.contractEmail = contractEmail;
    }

    public String getContractEmail() 
    {
        return contractEmail;
    }
    public void setCustContactmeans(String custContactmeans) 
    {
        this.custContactmeans = custContactmeans;
    }

    public String getCustContactmeans() 
    {
        return custContactmeans;
    }
    public void setCustContactmeansMemo(String custContactmeansMemo) 
    {
        this.custContactmeansMemo = custContactmeansMemo;
    }

    public String getCustContactmeansMemo() 
    {
        return custContactmeansMemo;
    }
    public void setIdType(String idType)
    {
        this.idType = idType;
    }

    public String getIdType()
    {
        return idType;
    }
    public void setCustCertificateNo(String custCertificateNo) 
    {
        this.custCertificateNo = custCertificateNo;
    }

    public String getCustCertificateNo() 
    {
        return custCertificateNo;
    }
    public void setInvalidDate(Date invalidDate) 
    {
        this.invalidDate = invalidDate;
    }

    public String getOpenId() {
        return openId;
    }

    public void setOpenId(String openId) {
        this.openId = openId;
    }

    public Date getInvalidDate()
    {
        return invalidDate;
    }

    public String getTrainAccount() {
        return trainAccount;
    }

    public void setTrainAccount(String trainAccount) {
        this.trainAccount = trainAccount;
    }

    public String getTrainPassword() {
        return trainPassword;
    }

    public void setTrainPassword(String trainPassword) {
        this.trainPassword = trainPassword;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("customerId", getCustomerId())
            .append("sourceway", getSourceway())
            .append("depositUsePwd", getDepositUsePwd())
            .append("depositSkipPwdAmount", getDepositSkipPwdAmount())
            .append("wechatId", getWechatId())
            .append("registrationid", getRegistrationid())
            .append("avatar", getAvatar())
            .append("custLoginPswmd5", getCustLoginPswmd5())
            .append("customerName", getCustomerName())
            .append("customerSex", getCustomerSex())
            .append("birthday", getBirthday())
            .append("createTime", getCreateTime())
            .append("isMemberTime", getIsMemberTime())
            .append("employeeIdInput", getEmployeeIdInput())
            .append("contractPhoneOne", getContractPhoneOne())
            .append("contractPhoneTow", getContractPhoneTow())
            .append("contractEmail", getContractEmail())
            .append("custContactmeans", getCustContactmeans())
            .append("custContactmeansMemo", getCustContactmeansMemo())
            .append("idType", getIdType())
            .append("custCertificateNo", getCustCertificateNo())
            .append("invalidDate", getInvalidDate())
            .append("trainAccount", getTrainAccount())
            .append("trainPassword", getTrainPassword())
            .toString();
    }
}
